Trip and travel tool

ABSTRACT

A server transmits a first page to be displayed. The first page includes a location entry representing a location to visit on a trip and at least two map elements, the two map elements and location entry being organized as a list in a first order on the first page. A request to move a selected map element of the two map elements within the list is received. Parameters of the selected map element are changed to form changed parameters that change the position of the selected map element within the list. The server transmits a second page to be displayed based on the changed parameters, the second page comprising the location entry and the two map elements organized as a second list in a second order.

BACKGROUND

Travel itineraries describe locations that are to be visited during atrip. Some itineraries include maps that show the geographic position ofthe locations. Creating such itineraries for business travel can be timeconsuming, especially when there are a large number of locations tovisit or when the traveler is unfamiliar with the area.

The discussion above is merely provided for general backgroundinformation and is not intended to be used as an aid in determining thescope of the claimed subject matter. The claimed subject matter is notlimited to implementations that solve any or all disadvantages noted inthe background.

SUMMARY

A server transmits a first page to be displayed. The first page includesa location entry representing a location to visit on a trip and at leasttwo map elements, the two map elements and location entry beingorganized as a list in a first order on the first page. A request tomove a selected map element of the two map elements within the list isreceived. Parameters of the selected map element are changed to formchanged parameters that change the position of the selected map elementwithin the list. The server transmits a second page to be displayedbased on the changed parameters, the second page comprising the locationentry and the two map elements organized as a second list in a secondorder.

In accordance with a further embodiment, a request for a page ofitineraries associated with a user is received and in response to therequest a set of itineraries created and explicitly saved by the user isidentified; a set of shared itineraries that were shared with the userby other users is identified; and a set of itineraries created by theuser but not explicitly saved by the user is identified. A page thatincludes entries for each itinerary in the set of itineraries createdand explicitly saved by the user, for each itinerary in the set ofitineraries shared with the user, and for each itinerary in the set ofitineraries created by the user but not explicitly saved by the user isconstructed and then the page is transmitted.

In accordance with a further embodiment, a server transmits a pagecomprising a list of itineraries shared with a user. A request to editshared itinerary is received. A page is transmitted that displays theshared itinerary and at least one control that is selectable by the userto indicate an itinerary modification. A request for an itinerarymodification is received. Based on the request, the shared itinerary iscopied to create a new itinerary and the new itinerary is changed inaccordance with the request for itinerary modification without changingthe shared itinerary.

This Summary is provided to introduce a selection of concepts in asimplified form that are further described below in the DetailedDescription. This Summary is not intended to identify key features oressential features of the claimed subject matter, nor is it intended tobe used as an aid in determining the scope of the claimed subjectmatter.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of computing devices and systems used toimplement the trip and travel tool.

FIG. 2 is a flow diagram of operations that can be performed from a homepage.

FIG. 3 is an example of a homepage.

FIG. 4 is an example of a search box on a homepage.

FIG. 5 is an example of a quick select on a homepage.

FIG. 6 is an example of zooming into a country on a home page.

FIG. 7 is an example zooming into a city on a homepage.

FIG. 8 is an example of a popup window to begin an itinerary.

FIG. 9 is an example of a build itinerary page.

FIG. 10 is a flow diagram of operations that can be performed on a builditinerary page.

FIG. 11 is an example of a location popup on the itinerary page.

FIG. 12 is an example of a build itinerary page with a location added tothe bottom of the build itinerary page.

FIG. 13 is an example of a hover popup window on a build itinerary page.

FIG. 14 is an example of a build itinerary page showing icons removedupon the selection of a category.

FIG. 15 is an example of a build itinerary page after an all locationslink has been selected.

FIG. 16 is an example of a customized itinerary page.

FIG. 17 is a flow diagram of a method for adding a map to a customizeditinerary page.

FIG. 18 is an example of a new map added to a customized itinerary page.

FIG. 19 is a flow diagram of a method for manipulating a map on thecustomized itinerary page.

FIG. 20 shows the results of manipulating a page on a customizeditinerary page.

FIG. 21 shows a customized itinerary page after the addition of a textseparator.

FIG. 22 provides a flow diagram of a method for selecting up/down iconson the customized itinerary page.

FIG. 23 shows the results of a customized itinerary page after the orderof items on the itinerary page has been changed.

FIG. 24 is a flow diagram of a method for sharing an itinerary.

FIG. 25 is a flow diagram of a method for e-mailing an itinerary.

FIG. 26 is an example of a Your Itineraries page.

FIG. 27 is a flow diagram of a method of displaying a Your Itinerariespage.

FIG. 28 is a flow diagram of a method for editing a shared itinerary.

FIG. 29 is an example of a create/edit location page.

FIG. 30 is an example of a create/edit area page.

FIG. 31 is a computer block diagram showing elements used in one or moreclient or server devices that implement the various embodiments.

DETAILED DESCRIPTION

This is a trip and travel tool that simplifies the process of generatingand sharing itineraries. An administrator defines a set of areas wheretravelers are likely to visit and within each area defines a set oflocations that travelers may wish to visit. Travelers constructitineraries by selecting an area to visit and then selecting locationswithin the area. After locations have been added to an itinerary, thetraveler may change the order of the locations within the itinerary andmay add one or more maps to the itinerary. The location of the mapswithin the itinerary may be shifted by the user. The user may also entertext blocks within the itinerary to provide additional information andthese text blocks may be shifted within the itinerary as desired by theuser. Once an itinerary is constructed, a user may share the itinerarywith other users. This may be done by e-mailing a Portable DocumentFormat (PDF) of the itinerary or by emailing a link to the itineraryitself. When a user receives a shared itinerary, they may open theitinerary and edit it. If the itinerary is protected, the changes madeto the itinerary are automatically saved as a new itinerary. If theitinerary is not protected, the changes made to the shared itinerary aresaved within the shared itinerary and the shared itinerary is changedfor all users that have access to the shared itinerary.

FIG. 1 provides a block diagram of elements used to implement the tripand travel tool. In FIG. 1, the trip and travel tool is implemented as aset of trip and travel tool pages 118 that are stored on a trip andtravel server 120 and that interact with one or more tables in adatabase 130. The trip and travel tool pages 118 include renderinginstructions 117, which are used to render information on a clientdevice, and scripts 119, which are executable code to implement some ofthe functionality of the trip and travel tool.

Database 130 includes a user table 150, an itinerary table 152, anitinerary object table 154, an area table 156 and a location table 164.User table 150 includes information about each user who has access tothe trip and travel tool. Itinerary table 152 contains information abouteach of the itineraries stored in the trip and travel tool. Itineraryobject table 154 includes information about individual objects that arestored in each itinerary, including the position of the itinerary objectwithin the itinerary. Area table 156 includes a list of areas and theirassociated metro areas, states and countries. In area table 156, thebounds of each area in longitude and latitude coordinates are stored.Location table 164 includes information about each location, includingthe area it is located in, the name of the location, whether thelocation is active, the address of the location, the phone number of thelocation, the website associated with the location, the hours ofoperation of the location and the categories that the location fallswithin. The location table may also include a uniform resource locatorthat describes the location of an image of the location.

Trip and travel tool pages 118 are served through a network 110 byserver 120 to one or more client devices such as client devices 102 and104, which are operated by respective users 106 and 108. Client devices102 and 104 include one or more displays on which trip and travel toolpages 118 are viewed. Client devices 102 and 104 also include inputdevices such as keyboards, pointing devices and touch screens that allowusers 106 and 108 to interact with the trip and travel tool pages 118.

In accordance with some embodiments, trip and travel tool pages 118include embedded map elements that reference map images and controls 116stored on a map server 112, which are requested using one or more mapAPIs 114. Map APIs 114 are also used to request new map images 116 basedon user interactions with one or more of the map controls. For example,if a user manipulates a geometric translation control on the map, clientdevice 102 provides the translation input in a call to a map API 114. Inresponse, map API 114 returns a new map image 116 corresponding to theshift in the image of the map.

The default page of the trip and travel tool pages 118 is the loginpage. Once the user is logged in, trip and travel server 120 provides ahomepage 300 as shown in FIG. 3. FIG. 2 provides a flow diagram ofoperations associated with homepage 300.

Homepage 300 includes a header 302, a map 304, a search box 306, a quickselect box 308, and a category box 310. Header 302 includes a title 312,an admin link 314, a “Your Itineraries” link 316, and a logout link 318.In some embodiments, header 302 may also include the user name of theuser who is currently logged in. When homepage 300 is initially providedat step 202 of FIG. 2, map 304 is a map of the entire world. In map 304,icons 320, 322, 324, 326, 328, and 330 are displayed with a separateicon on each country in which travel locations have been defined. Searchbox 306 includes a text entry area 332 in which a user may enter text.Quick select box 308 includes country box 334, state box 336, metro box338, area box 340 and a GO button 342. Each of boxes 334, 336, 338 and340 include pull down controls such as pull down control 344 of countrybox 334. By activating the pull down controls, a list of values for theparticular box will be displayed allowing the user to select possiblevalues for the box. Go button 342 may be selected by the user to submitthe values in country box 334, state box 336, metro box 338 and area box340. Category box 310 includes a list of selectable categories.

If at step 204, trip and travel server 120 receives an indication thatthe user has selected administrator link 314, trip and travel server 120builds and returns an administrator page at step 206. If server 120receives an indication that the user has selected the “Your Itineraries”link 316 at step 208, trip and travel server 120 builds and returns theuser's itinerary page at step 210. Steps 206 and 210 are discussedfurther below. If server 120 receives an indication that the user hasselected at step 212 a category from the collection of categories 310,trip and travel server 120 adds flags to map 304 for the best citiesthat match the selected category at step 214 and returns the new flagsand map to the client device. Note that the flags may take the form oficons such as icons 320, 322, 324, 326, 328 and 330 of FIG. 3.

Trip and travel server 120 may also receive a user selection of a zoneat step 216. The user selects a zone at step 216 in one of three ways.The first way is for a user to type in the name of the zone in searchbox 332. As the user types in search box 332, a drop down list of zonesthat match the search terms in search box 332 is displayed. FIG. 4provides an example of a webpage 400 showing a drop down list 402 asuser types “MO” in search text box 404. Drop down list 402 includesthree entries 406, 408, and 410. Using a pointing device, touch screenor arrows keys, the user may select one of the items in drop down list402 and thereby select a zone.

An alternative means for the user to select a zone is for the user touse quick select box 308 of FIG. 3. Quick select box 308 is designed tobe filled in by the user in a top/down manner such that the user firstselects a country in country box 334 then moves down through state box336, metro box 338 and area box 340. Upon selection of the country incountry box 334, the drop down menu associated with state box 336 ispopulated with states in the selected country. After the user hasselected a state, the user may select a metro area or city from the dropdown menu of metro box 338, which is populated with cities that fallwithin the selected state. After selecting the metro area or city, theuser may select an area from the drop down menu of area box 340, whichis populated with areas found in the selected city or metro area.

FIG. 5 shows an example of quick select box 308 after the user hasselected the United States in country box 334, New York in state box336, and New York City in metro box 338. For area box 340, a drop downmenu 500 is displayed that includes a list 502 of areas defined for NewYork City by the administrator. To make the zone selection, the userpresses GO button 342. The user may press GO button 342 at any stage offilling in the information in quick select box 308. Thus, the user maypress GO button 342 after selecting the country in country box 334 andwithout selecting a state, city or area. If the user simply selects thecountry, pressing GO button 342 will submit the country as the selectedzone. Similarly, the user may simply select a country and state withoutselecting a city and area or the user may select the country, state, andcity without selecting an area.

A third way for the user to select a zone is to use a pointing device ortouch screen to select a country, state, city or area shown on map 304.

At step 218, server 120 determines if the selected zone contains asingle area or multiple areas, where an area is a named geographicalspan defined by the administrator. If there is more than one area in theselected zone at step 218, server 120 zooms in to the selected zone atstep 220 by requesting a map of the selected zone using map APIs 114 ofmap server 112. Map server 112, in response, provides a map image 116 ofthe selected zone which is displayed within the homepage in place of theprevious map image. FIG. 6 provides an example of a homepage 600 inwhich a new map 602 has been displayed, which shows the United Kingdomin response to the user selecting the United Kingdom either throughsearch text box 306, quick select box 308, or by using a pointing deviceon map 304.

After server 120 zooms into the selected zone at step 220, the processreturns to wait for additional input selections of administrator link314, Your Itineraries link 316, a category of category box 308, oranother zone in the currently displayed map. The user may continue toselect zones at step 216 to narrow the geographic span depicted in themap of the homepage. For example, if the user selects London in FIG. 6,server 120 will zoom in to London at step 220 as shown in homepage 700of FIG. 7. In accordance with some embodiments, a breadcrumb trail 770indicates the level of zoom on the homepage. For instance, breadcrumbtrail 770 indicates that the current map view is of the city of London,which is in the United Kingdom, which is part of the world.

When the selected zone represents a single area, for example selectingone of the area icons 702, 704, 706, 708, 710, 712, or 714 of FIG. 7, apop-up is displayed at step 222 to confirm that the user wishes to beginan itinerary for the selected area. FIG. 8 provides an example of aconfirmation pop-up 800 which asks the user to confirm that they wish tostart a new itinerary for the selected area. If the user presses cancelbutton 802 of pop-up 800, the itinerary is not begun at step 224 and theprocess returns to wait for an additional selection by the user. If theuser presses OK button 804 of pop-up 800, client 102 sends a request foran itinerary building page for the selected area that is received byserver 120 at step 226. In response, server 120 creates a new itineraryin itinerary table 152 at step 228 and constructs and transmits a builditinerary page at step 230.

FIG. 9 provides an example of a build itinerary page 900 that isreturned by server 120 in response to the request for this page at step226. Build itinerary page 900 includes a location list 902, which listsall locations that have been defined for the selected area. List 902includes a scroll bar 904 and a sort heading 906. Sort header 906includes three sorting buttons: alphabet sort 908, recommend sort 910,and date sort 912. When alphabet sort button 908 is pressed, the storesin store list 902 are organized alphabetically. When recommend sortbutton 910 is selected, the stores that are recommended are shown at thetop of list 902. When date sort button 912 is selected, the stores inlist 902 are sorted based on the date that the stores were opened. Eachentry in store list 902 includes a store name such as name 914, categoryicons such as category icon 916 that represent categories assigned tothe store and date 918, which represents the date the store firstopened.

Build itinerary page 900 also includes a map 920, itinerary box 922,category filter 924, customize itinerary button 926 and Add All button928.

Map 920 provides a map of the entire selected area and includes a zoomin/zoom out control 930 and location icons such as location icons 932and 934. The position of the location icons on map 920 corresponds tothe geographic position of the locations found in location list 902.

Itinerary box 922 includes a list of Itineraries in This Area 936 and alist of “Your Itineraries” 938. Itineraries in This Area 936 includesitineraries written by the administrator for the current area. “Youritineraries” 938 includes a list of at least some of the itinerariesassociated with the current user, where the itineraries of the user maynot be for the current area. Itinerary box 922 includes a Hide button937 that when selected causes itinerary box 922 to be removed from thedisplay so that more of map 920 is visible.

Category filters 924 provide a list of categories with each categoryhaving a check box next to it such as check box 940 for the category“Pharmacy/Drug”. By selecting a check box next to a category, the useris able to remove all icons on map 920 that represent locations that donot fall within the selected categories. If none of the categories aremarked, as is shown in FIG. 9, all of the locations have their map iconsshown on map 920. However, if at least one category is checked, onlythose locations that fall within at least one of the selected categorieshave their respected map icons displayed on map 920. The operation ofcategory filters 924 is discussed in more detail below.

Build itinerary page 900 allows for a number of operations to beperformed. FIG. 10 provides a flow diagram showing the operations thatcan be performed on the build itinerary page. At step 1000 of FIG. 10,the build itinerary page is displayed with a list of locations and a mapof the area showing icons for locations in the list.

One of the operations that may be performed on build itinerary page 900is the selection of a location. A location may be selected in twodifferent manners. In step 1002, a location is selected by selecting thelocation from location list 902 using a pointing device. When a locationis selected in this manner, map 920 is moved to bring the location intoview if necessary at step 1004. To move the map, the longitude andlatitude of the selected location is provided to map API 114 with arequest to center the map on that longitude and latitude. In response,map server 112 returns a map that it is centered on the providedlocation. The returned map is then displayed in build itinerary page900.

The alternative means for selecting a location is to select one of themap icons such as map icon 932 or map icon 934. An icon may be selectedby using a pointing device or by touching a touch sensitive screen.

After step 1004 or 1006, a location pop-up is opened at step 1008 thatcontains location details for the selected location. FIG. 11 provides anexample of a location pop-up 1100 on build itinerary page 900 after theselection of a location indicated by location icon 1102. Pop-up 1100includes a name for the location 1104, an address for the location 1106,a phone number for the location 1108, hours of operation 1110, a datethe location was opened 1112, a website for the location 1114, a shortdescription of the location 1116, an image of the outside of thelocation 1118, an Add to Itinerary button 1120, and a Close button 1122.Close button 1122 may be activated by the user to close pop-up 1100.

If the user selects Add to Itinerary button 1120 at step 1110, alocation entry is placed at the bottom of build itinerary page 900 atstep 1012 and the color of the location icon on map 900 is changed atstep 1014. FIG. 12 shows an example of a build itinerary page 1200 inwhich an itinerary entry 1201 for a location has been added to thebottom of the page after an Add to Itinerary button has been pressed. InFIG. 12, the color of icon 1202 has been changed (represented in FIG. 12by the cross-hatching) to indicate that the location represented by theicon has been added to the itinerary. In accordance with one embodiment,locations that have not been added to the itinerary have an icon of onecolor, such as red, and locations that have been added to the itineraryhave an icon of a second color, such as green. Itinerary entry 1201includes a store name 1203, hours of operation 1204, address 1206,website address 1208, description 1210, exterior image 1212, and Removefrom Itinerary button 1214.

In addition to placing the location entry at the bottom of the builditinerary page and changing the color of the location icon at steps 1012and 1014, server 120 also creates a new itinerary object in itineraryobject table 154 and sets parameters in itinerary object table 154 forthe new object to indicate that it is a location entry object and thatit is positioned at the bottom of the itinerary at step 1016.

An additional operation that may be performed on build itinerary page900 is to hover a pointer over an icon at step 1018. If an icon ishovered over at step 1018, a compact information pop-up is shown at step1020. FIG. 13 provides an example of a build itinerary page 1300 inwhich a compact information pop-up 1302 is shown in response to apointer 1304 hovering over a location icon 1306. Compact informationpop-up 1302 includes exterior image 1308, store name 1310, and acategory icon 1312, which represent categories assigned to the store.Compact information pop-up 1302 is removed from the display when pointer1304 is no longer positioned over location icon 1306.

A further operation that may be performed on build itinerary page 900 isthe selection of a category from the category filters. At step 1022 ofFIG. 10, one or more categories are selected and at step 1024, icons oflocations that do not match the selected categories are removed from themap.

FIG. 14 provides an example of a build itinerary page 1400 aftercategory filters have been selected. As shown in FIG. 14, hard linescategory 1402 has been selected causing the automatic selection of allsub-categories underneath hard lines category 1402 including bookscategory 1404, electronics category 1406, other category 1408, and toyscategory 1410. Map 1412 is shown to include fewer location icons thanmap 920 and map 1412 only shows map icons that are associated with thehard lines category.

A further operation that may be performed on the build itinerary page isthe selection of the Add All button 928 at step 1026 of FIG. 10. Inresponse to receiving an indication that the Add All button has beenselected, server 120 determines which locations in location list 902have not already been added to the itinerary and places entries forthose locations at the bottom of the build itinerary page at step 1028.At step 1030, all location icons for locations added at step 1028 havetheir colors changed to a same second color by server 120. At step 1032,server 120 adds an itinerary object to itinerary object table 154 foreach location that is added at step 1028. The parameters of the addeditinerary objects are set to indicate the position of the locationentries within the itinerary.

FIG. 15 shows an example of a build itinerary page 1500 after an Add Allbutton has been selected. In FIG. 15, a separate entry has been addedfor each location in location list 902 although only three such entriesare shown in FIG. 15 because of space limitations. In particular,entries 1502, 1504, and 1506 are shown. Each entry includes a locationname, hours of operation, address, website address, description,exterior image, and a Remove from Itinerary button. In addition, in FIG.15, each of the map icons has changed color in map 1508 as indicated bythe cross-hatching on the icons.

An additional operation that may be performed on the build itinerarypage is the selection of Customize Itinerary button 926. In FIG. 10,when the Customized Itinerary button is selected at step 1042, thecurrent map parameters are stored at step 1044 by server 120. The mapparameters define the current geographical span of the map view. At step1046, the customize itinerary page is displayed.

FIG. 16 provides an example of a customize itinerary page 1600.Customize itinerary page 1600 includes an ordered itinerary list 1602, atool box 1604, and a header 1606. Header 1606 includes a creation date1608 for the current itinerary, an itinerary name 1610 which defaults tosimply “itinerary” if the itinerary has not been saved with a name yet,and a Back to Locations button 1612 which returns the user to the builditinerary page discussed above in connection with FIG. 9.

Ordered itinerary list 1602 includes an ordered list of itineraryelements or objects that can include location entries, map elements andtext separator elements, for example. When first visiting a customizeitinerary page for an itinerary, the ordered itinerary list will onlyinclude location entries, with one location entry for each location thatwas added on the build itinerary page. In FIG. 16, ordered itinerarylist 1602 includes location entries 1614, 1616 and 1618. Each locationentry includes a location name 1620, hours of operation 1622, address1624, website address 1626, brief description 1628, exterior image 1630,visit number 1632 and order control 1634. Visit number 1632 representsthe relative ordinal position of when the location will be visitedduring the trip. In addition, the location entries are ordered in atop-down fashion based on when the locations will be visited during thetrip. Since location entry 1614 is at the top of ordered list 1602, thelocation for entry 1614 will be the first location visited during thetrip. This is confirmed by the number 1 in visit number 1632 of entry1614. Moving down, the location associated with location entry 1616 willbe the next location visited during the trip as indicated by the number2 in visit number 1632 of entry 1616.

Order control 1634 allows the person constructing the itinerary tochange the order of location entries in the itinerary and thus changethe order that locations will be visited during the trip. Order control1634 includes one or more arrows including an up arrow and a down arrowsuch as up arrow 1636 and down arrow 1638 of entry 1616. Using an uparrow of an order control moves the associated location entry oneposition upward in the itinerary. Using the downward order control 1638moves the associated location entry downward one position in theitinerary. For example, if downward control 1638 is used in FIG. 16,entry 1616 and 1618 switch places in the itinerary. Movement ofelements/objects within an itinerary is discussed below.

Tool box 1604 includes add text separator button 1650, add map viewbutton 1652, add more locations button 1654, e-mail itinerary button1656, print itinerary button 1658, save itinerary button 1660, and shareitinerary button 1662.

If the user selects add map view button 1652, a map element is added tothe itinerary using a method discussed in the flow diagram of FIG. 17.

In step 1700, the add map view input is received. At step 1702, trip andtravel server 120 creates a new map object with map parameters of thelast map viewed on the build itinerary page. Thus, the zoom level andcenter point of the map last viewed on the build itinerary page is usedto set the zoom level and center view point of the newly created mapobject. At step 1704, trip and travel server 120 sets the position ofthe map object at the bottom of the itinerary. At step 1706, trip andtravel tool server 120 stores the map object parameters in the database130. In particular, it adds the map object parameters to itineraryobject table 154. At step 1708, trip and travel server 120 sends a newitinerary page based on the itinerary objects stored in itinerary objecttable 154 for the current itinerary. This new page includes parametersthat describe the map object and that indicate that the map object ispositioned at the bottom of the itinerary. At step 1710, a browser onclient device 102 renders the new itinerary page 1710 by requesting amap image 116 using map APIs 114 on map server 112. The request is madebased on the map parameters provided for the map object. Map server 112then returns the requested map image.

FIG. 18 provides an example of a customize itinerary page 1800 in whichtwo map objects have been inserted into the ordered itinerary list 1801by selecting add map view button 1652 twice. The two map objects 1802and 1804 include respective zoom controls 1806 and 1808 as well asrespective location icons 1810, 1812 and 1814, 1816. Location icons 1810and 1814 represent the location of the store found in location entry1818 and location icons 1812 and 1816 represent the store found inlocation entry 1820. The number in location icons 1810 and 1814corresponds to the number in visit number 1822 of location entry 1818and the number in location icons 1812 and 1816 corresponds to the numberin visit number 1824 of location entry 1820. Map objects 1802 and 1804also include respective Remove from List buttons 1826 and 1828 andrespective order controls 1830 and 1832. Remove from List buttons 1826and 1828, cause the associated map object to be removed from ordereditinerary list 1801. Order controls 1830 and 1832 move theircorresponding map objects upward or downward in ordered itinerary list1801 in a similar manner to the operation of order control 1634 of FIG.16.

Each map object 1802 and 1804 is independent of the other map, such thatthe user may zoom in or out of each map without affecting the other mapsin the ordered itinerary list. Further, the user may geometricallytranslate or shift each map to show different parts of the map. FIG. 19provides a flow diagram of a method of manipulating a map shown inordered itinerary list 1801.

At step 1900 of FIG. 19, map API 114 on map server 112 receives mapmanipulation input from client device 102 based on user input. Inparticular, a user interaction with the zoom controls 1806 or 1808 or atranslation input, typically obtained by placing a pointer on the mapand dragging across the map, is received by map API 114.

Based on the input it receives, map API 114 retrieves new map images116, if needed, from map server 112 at step 1902. Map API 114 thenprovides the new map image to the browser on client device 102 at step1904. The browser on the client device 102 then displays the new mapimage in place of the old map image at step 1906.

At step 1908, map API 114 issues a map change event. At step 1910, ascript on the customize itinerary page retrieves new parameters of thedisplayed map from map API 114 in response to the map change event. Atstep 1912, the script sends the new map parameters to trip and travelserver 120 and at step 1914, trip and travel server 120 stores the newmap parameters in the itinerary object table 154 of database 130,thereby saving the change in the map object. By saving the parameters ofthe map object as they are changed, trip and travel server automaticallysaves the state of the current itinerary so that the changes to theitinerary will not be lost if the user leaves the current itinerarywithout saving the changes using save button 1660.

FIG. 20 provides an example of a customize itinerary page 2000 after mapobject 1804 has been manipulated by a user to create map object 2002.Customize itinerary page 2000 includes an ordered list 2020 comprisinglocation entries 1818 and 1820 having respective visit numbers 2304 and2302 and map objects 1802 and 2002 having respective location icons2008, 2010 and 2004, 2006. In FIG. 20, map object 2002 represents mapobject 1804 of FIG. 18 after a zoom-in procedure has been performed andafter translating the map to place location icon 2004 toward the centerof map object 2002.

FIG. 21 provides an example of a customize itinerary page 2100 after addtext separator button 1650 has been selected by a user. In FIG. 21, atext separator element 2102 has been added that includes a text box2104, an order control 2106 and a Remove from List button 2108. If auser activates Remove from List button 2108, text separator element 2102is removed from the itinerary. Order control button 2106 operates in asimilar manner to other order control buttons discussed above for thecustomize itinerary page and allows the text separator element to bemoved up or down in the ordered itinerary list. Text box 2104 may beselected by the user and once selected will accept text entered by theuser.

FIG. 22 provides a flow diagram of a method performed upon receiving anup or down arrow selection of an order control such as order control2106 of FIG. 21, order controls 1830 and 1832 of FIG. 18 and ordercontrol 1634 of FIG. 16. In step 2200, a browser operating on clientdevice 102 receives the selection of an up or down arrow in an ordercontrol. Based on this input, trip and travel server 120 changes theorder of objects on the customized itinerary page at step 2202 bychanging the parameters of the objects. At step 2204, trip and travelserver 120 saves the new object order in database 130 by storing the newposition value parameters for the objects in itinerary object table 154.At step 2206, trip and travel server 120 updates the map icon numbersand visit numbers in the customize itinerary page based on the newstored order. At step 2208, trip and travel server 120 sends a newcustomize itinerary page with the new object order and new numbering.

FIG. 23 shows an example of a customize itinerary page 2300 afteritinerary objects have been shifted using the order controls associatedwith each object. In particular, location entry 1818 has been moved downtwo positions, location entry 1820 has been moved up one position, mapobject 1802 has been moved down one position and map object 2002 hasbeen moved up two positions. In comparing FIG. 20 to FIG. 23, it can beseen that location entries 1818 and 1820 have been placed in a differentorder in FIG. 23 than in FIG. 20. As a result, visit number 2302 ofentry 1820 has been changed from 2 to 1 and visit number 2304 of entry1818 has been changed from 1 to 2. In addition, location icons 2006 and2008 have been modified so that they contain the number 2 instead of thenumber 1 to correspond to the change in visit number 2304. Similarly,location icons 2004 and 2010 have had their order numbers changed from 2to 1 to reflect the change in the visit number 2302 of entry 1820. Thus,as shown in FIG. 23, the itinerary of the present invention allows formultiple maps to be entered into the itinerary and for each map to beshifted within the itinerary as desired. Further, each map automaticallyreflects the changes in the order of the location entries within theitinerary by altering the numbers in location icons on the map.

Together FIGS. 20, 22 and 23 provide a computer-implemented method thatincludes transmitting, by server 120, a first page 2000 to be displayedcomprising a location entry 1818 representing a location to visit on atrip and at least two map elements 1802, 2002, the two map elements andlocation entry being organized as a list 2020 in a first order on thefirst page 2000. Server 120 receives a request to move a selected mapelement 2002 of the two map elements within the list 2020. Server 120changes parameters of the selected map element 2002 to form changedparameters that change the position of the selected map element 2002within the list 2020. Server 120 transmits a second page 2300 to bedisplayed based on the changed parameters, the second page 2300comprising the location entry 1818 and the two map elements 1802, 2002organized as a second list 2330 in a second order.

In FIG. 20, the selected map element 2002 is after a second map element1802. The request to move selected map element 2002 is a request to movemap element 2002 so that it is before the second map element 1802 andchanging the parameters of selected map element 2002 involves changingthe parameters of selected map element 2002 and second map element 1802to indicate that selected map element 2002 is before second map element1802.

In FIG. 20, the selected map element 2002 is also after location entry1818. One of the requests to move selected map element 2002 is a requestto move selected map element 2020 so that it is before location entry1818 and changing the parameters of selected map element 2020 involveschanging the parameters of selected map element 2002 and location entry1818 to indicate that selected map element 2020 is before location entry1818.

Using add map view button 1652, a user can add a third map element tocustomize itinerary page 2300. Upon receiving a request to add a thirdmap element to customize itinerary page 2300, server 120 creates a thirdmap element and sets parameters of the third map element to position thethird map element at the end of a third list comprising the locationentry, the two map elements and the third map element. Server 120 thentransmits a third page to be displayed based on the changed parameters,the third page comprising the third list.

FIG. 24 provides an example of a flow diagram of a method that isperformed when a user selects share itinerary button 1662 of tool box1604 on a customize itinerary page. In step 2400, a share button inputis received and forwarded to trip and travel server 120. In step 2402,trip and travel server 120 determines if the itinerary has already beensaved. If the itinerary has not been saved, a save first message isdisplayed at step 2404 and the share process ends. If the itinerary hasbeen saved at step 2402, trip and travel server 120 transmits a sharepop-up form that is displayed at step 2406. The share pop-up formincludes a text box to receive an e-mail address of the user to whom theitinerary is being shared. Optionally, the form may include a textdescription text block in which the user may type a brief description ofthe itinerary being shared. The pop-up form also includes a send orsubmit button that when pressed submits the e-mail address and optionalitinerary description to trip and travel server 120 at step 2408. Basedupon the received submitted share information, trip and travel server120 updates itinerary table 152 to indicate that the itinerary has beenshared with the designated user at step 2410. Trip and travel server 120then constructs and sends an e-mail to the designated e-mail addressfound in the submitted share information at step 2412. The e-mailincludes a link either directly to the destination user's itinerary pageor directly to the shared itinerary.

FIG. 25 provides a flow diagram of a method performed when e-mailitinerary button 1656 is selected by a user. At step 2500, the e-mailitinerary input is received by the client device 102 and is provided toand received by server 120. At step 2502, the server determines if thecurrent itinerary has been saved. If the itinerary has not been saved, asave first message is displayed at step 2504 and the e-mail processends. If the itinerary has been saved at step 2502, server 120 transmitsan e-mail pop-up form that is displayed at step 2506. The e-mail pop-upform that is displayed contains a text box to receive an e-mail addressand an optional text box to receive a brief description of the itineraryfrom the user. The pop-up form also includes a submit or send buttonthat when selected submits the e-mail information placed in the form toserver 120 at step 2508. Based on the received e-mail information, tripand travel server 120 constructs a PDF document of the saved itineraryat step 2510. At step 2512, trip and travel server 120 constructs ane-mail to the designated address found in the pop-up form, attaches thePDF of the itinerary and sends the e-mail to the designated address.

FIG. 26 provides an example of a Your Itineraries page 2600 that isdisplayed when a user selects a Your Itineraries button such as YourItineraries button 316 of FIG. 3. Your Itineraries page 2600 includes asaved itineraries area 2602, a shared itineraries area 2604, an unsaveditineraries area 2606, a password modification area 2608, and a profileinformation area 2610.

Profile information area 2610 includes information about the currentuser including their first name 2612, last name 2614, e-mail address2616, and department within the organization 2618. Modify password area2608 provides text boxes for changing the user's current passwordincluding a current password text box 2620, a new password text box2622, a verify password text box 2624 and a change password button 2626.

Saved itineraries area 2602 includes entries for itineraries that thecurrent user has explicitly saved by pressing save button 1660 on thecustomize itinerary page and providing a name for the itinerary duringthe save operation. The saved itineraries in FIG. 26 include itineraryentries 2628, 2630, and 2632. Each saved itinerary entry includes a name2634, an area 2636 that the itinerary covers, an indication of thenumber of users the itinerary has been shared with 2638 and a date theitinerary was created 2640. Shared With column 2638 includes both thenumber of users that the itinerary has been shared with as well as aView All link, such as View All link 2642, that when activated providesa list of all the users with whom the itinerary has been shared. Eachshared itinerary entry also includes action buttons including an edititinerary button 2644, a view itinerary button 2646, a share itinerarybutton 2648, an e-mail itinerary button 2650, and a delete itinerarybutton 2652.

Edit itinerary button 2644 opens the customize itinerary page for thisitinerary; view itinerary button 2646 opens a PDF of the saveditinerary; share itinerary button 2648 opens the share pop-up window andperforms the share action depicted in the flow diagram of FIG. 24;e-mail itinerary button 2650 opens an e-mail pop-up and performs thesteps of the flow diagram of FIG. 25 to e-mail the itinerary to anotheruser; and delete itinerary button 2652 deletes the current saveditinerary from server 120.

Shared itineraries area 2604 includes a list of entries for itinerariesthat have been shared with the current user. Each entry, such as shareditinerary entry 2654, includes a name 2656 of the itinerary, an area2658 that the itinerary covers, an author 2660 who created the itineraryand a created-on date 2662 that represents the date the itinerary wascreated. In addition, each shared itinerary entry includes an edititinerary button 2664, a view itinerary button 2666, an e-mail itinerarybutton 2668, and a delete itinerary button 2670.

Edit itinerary button 2664 for the shared itineraries activates a methodfor editing the shared itinerary and is discussed further below inconnection with FIG. 27. View itinerary button 2666 causes a PDF of theshared itinerary to be displayed. E-mail itinerary button 2668 causes apop-up e-mail form to be shown and the method of FIG. 25 to beperformed. Delete itinerary button 2670 removes the itinerary from thecurrent user's list of itineraries but does not delete the shareditinerary from the system. The shared itinerary continues to beavailable to the original author of the itinerary and to other users towhom the itinerary has been shared.

Unsaved itineraries area 2606 includes a list of itineraries that theuser has created but not explicitly saved. In accordance with severalembodiments, and as discussed above, itineraries are automatically savedby server 120 as the user adds locations and other objects to theitinerary and as the user modifies the order of objects within theitinerary. Thus, if the user exits or loses communication with server120, the work performed on the itinerary is not lost. Because the userhas not explicitly saved the itineraries in unsaved itineraries area2606, the itineraries do not have a name. Instead, the name of theitineraries is the same as the dates the itineraries were created. Eachunsaved itinerary includes a name 2672, an area that the itinerarycovers 2674, and a date the itinerary was created 2676. Each itineraryentry also includes an edit itinerary button 2678, a view itinerarybutton 2680, and a delete itinerary button 2682. The edit itinerarybutton 2678 causes a customize itinerary page to be opened for theunsaved itinerary such as customize itinerary page 1600 of FIG. 16. Theview itinerary button 2680 causes a PDF of the unsaved itinerary to bedisplayed and the delete itinerary button 2682 causes the itinerary tobe deleted from the list of unsaved itineraries and from server 120 sothat it is not available to any user.

FIG. 27 provides a method of displaying Your Itineraries page 2600. Instep 2700, server 120 receives a request for a page of itinerariesassociated with a user. At step 2702, in response to the request, server120 identifies a set of itineraries created and explicitly saved by theuser. Server 120 then identifies a set of shared itineraries that wereshared with the user by other users at step 2704. At step 2706, server120 identifies a set of itineraries created by the user but notexplicitly saved by the user. At step 2708, server 120 constructs page2600 by including entries for each itinerary in the set of itinerariescreated and explicitly saved by the user, for each itinerary in the setof itineraries shared with the user, and for each itinerary in the setof itineraries created by the user but not explicitly saved by the user.At step 2710, server 120 transmits page 2600 to client device 102, whichrenders page 2600 on the display.

FIG. 28 provides a flow diagram of a method invoked when a user selectsedit button 2664 for a shared itinerary. At step 2800 the edit shareditinerary input 2664 is received. At step 2802, the shared itinerary isdisplayed in a customize itinerary page such as the customize itinerarypage of FIG. 16. At step 2804, if a change in the itinerary is detected,a new itinerary is created in itinerary table 152 of database 130 atstep 2806 by server 120. At step 2808, server 120 copies the informationabout the shared itinerary into the new itinerary record and createsitinerary objects for the new itinerary that correspond to the itineraryobjects in the shared itinerary. At step 2810, server 120 alters thedatabase entries for the new itinerary objects to reflect themodifications made by the user without modifying the database entriesfor the itinerary objects of the shared itinerary. Thus, if the usermodifies a shared itinerary under the method of FIG. 28, a new itineraryis automatically created, altered and saved without modifying the shareditinerary. In this manner, only the original author of the shareditinerary is able to edit and change the shared itinerary. In otherembodiments, the shared itinerary may be edited by anyone that it isshared with. In such embodiments, the method of FIG. 28 is notperformed. Instead, each user that the itinerary is shared with is ableto edit the shared itinerary using the customized itinerary page and anychanges that any of the users make to the shared itinerary are saved. Insome further embodiments, the author of the original itinerary is ableto designate particular users that are able to edit the itineraries theycreate. At step 2812, server 120 transmits a new customize itinerarypage containing the modified itinerary.

FIG. 28 may also be described as transmitting, by a server, a pagecomprising a list of itineraries shared with a user. At step 2800,server 120 receives a request to edit a shared itinerary. At step 2802,server 120 transmits a page that displays the shared itinerary and atleast one control that is selectable by the user to indicate anitinerary modification. Such controls include add text separator button1650, add map view button 1652, add more locations button 1654 and ordercontrol 1634. At step 2804, server 120 receives a request for anitinerary modification. At step 2808, based on the request, server 120copies the shared itinerary to create a new itinerary. At step 2810,server 120 changes the new itinerary in accordance with the request foritinerary modification without changing the shared itinerary, whereinchanging the new itinerary produces a modified itinerary. In accordancewith some embodiments, changing the new itinerary involves storingparameters describing the modified itinerary in a database, theparameters such that the modified itinerary may be reconstructed fromthe parameters.

FIG. 29 provides a create/edit location page 2900, which is accessiblethrough the admin button 314 of FIG. 3 and any other figure in which theadmin button appears in the header. Create/edit location page 2900allows an administrator to insert or edit information about a locationwithin a particular area and includes a location name text box 2902,which accepts text representing the name of the location; briefdescription text box 2904, which accepts a brief description of thelocation; and a status box 2904, which indicates whether the currentstatus of the location is active or inactive. An inactive status for alocation means that the location may not be added to an itinerary whilean active status indicates that the location may be added to anitinerary. Resource type box 2906 indicates a type for the location,such as “store”, “hotel”, “subway”. The type may be selected from a pulldown list activated by a pull down control 2908. Recommended check box2910 may be checked to indicate whether this location is recommended bythe administrator.

Edit location page 2900 also includes a map 2912, a map search box 2914and a search submit button 2916. Map 2912 may be manipulated by the userusing zoom control 2920 and by translating the map to change thegeographical spans covered by map 2912. Typically, the user willmanipulate map 2912 so that it has a sufficient resolution to place alocation icon 2918 for the current location. In the alternative or incombination with map manipulation, the user may enter search terms intosearch text box 2914 and submit the search using search button 2916 tobring a particular location into view. For example, the user may enterthe address of the location into the search text box and select searchsubmit button 2916. When the search submit button 2916 is selected, thesearch text is submitted to map API 114, which performs a search andreturns the appropriate map image 116 for the area that matches thesearch terms.

Edit location page 2900 also includes address boxes 2922, 2924, city box2926, state box 2928, zip code box 2930, and country box 2932, whichtogether define an address for the current location. Edit location page2900 also includes a phone text box 2934 that receives a phone numberfor the location and a website address box 2936 that receives a webaddress for the location. Edit location page 2900 also includes anhours-of-operation box 2938 and an open date box 2940. Category box 2942on edit location page 2900 accepts categories for the current location.A location image box 2944 displays an image that has been selected usinga browse button 2946 that when selected opens a browse dialog boxallowing a user to select an image to associate with the location. Uponselection of the image, the URL path to the image is stored in locationtable 164 of database 130. Cancel button 2950 of edit location page 2900cancels any changes made to the current location without saving thechanges and returns the user to their previously viewed page. Savebutton 2948 saves any changes to the location and then returns the userto their previously viewed page. Edit location page 2900 also includesadministration tool box 2952, which includes links to See All Locations2954, Create New Location 2956, See All Areas 2958, Create New Area2960, See All Users 2962, and Create New User 2964. Selecting See AllLocations 2954 causes a page to be displayed that lists all locationsstored in server 120. Create New Locations 2956 causes the edit locationpage 2900 to be displayed. Selecting See All Users 2962 causes a pagewith a list of current users to be displayed and Create New User 2964causes a new user form to be displayed in which the administrator mayenter information about a new user and create a new user account.Selecting See All Areas 2958 causes a list of all areas in server 120 tobe displayed and Create New Area 2960 causes an edit area page 3000 ofFIG. 30 to be displayed.

Edit area page 3000 allows the user to create or edit an area that canbe used by users to create itineraries. Under several embodiments, anarea is a geographical span with each itinerary being associated withone area and each area containing multiple locations. Edit area page3000 includes an area name text box 3002, a country text box 3004, ametropolitan text box 3006, and a state/region/providence text box 3008.The administrator enters the name of the area the country, metropolitanarea, and state in text boxes 3002, 3004, 3006, and 3008. Theadministrator is also able to designate the areas as either being activeor inactive using an area status box 3010. When an area is inactiveusers are not able to build itineraries for the area and are not able toselect the area. By designating an area as inactive, the administratorcan keep the area from other users until the administrator has been ableto associate locations with the area.

Edit area page 3000 also includes a map 3012, an associated map searchtext box 3014 and a search submit button 3016. Map 3012 includes a zoomcontrol 3018 and may be manipulated by the user. In particular, the usermay zoom in or out using zoom control 3018 and may translate or shiftthe map using a dragging motion. Any manipulations of the map arecommunicated to map API 114 which returns the appropriate map images forthe given manipulation.

The user may also enter text into search text 3014 and submit the textusing search submit button 3016 to move to a different map location.When the user submits search text using search button 3016, the searchtext is submitted to map API 114 which searches an internal database tofind locations that match the search term and returns a map image for alocation that matches the search term. The returned map image is thendisplayed as map 3012.

The level of zoom or resolution selected by the administrator representsthe maximum amount the user will be able to zoom out of the area whenbuilding an itinerary in either the build itinerary page or thecustomize itinerary page. Thus, in the build itinerary page 900, and inthe customize itinerary page 1800, the maximum amount the user will beable to zoom out is the level of resolution selected in edit area 3000.The user is able to zoom into higher resolution to see more details ofthe map as long as the map is not at its highest resolution when set bythe administrator.

Edit area page 3000 includes a cancel button 3018 that allows the userto exit edit area page 3000 without saving the changes to the area andalso includes a save button 3020 that saves the changes to the areabefore exiting the page and returning the user to their previous page.

An example of a computing device that can be used as a server and/orclient device in the various embodiments described above is shown in theblock diagram of FIG. 31. The computing device 10 of FIG. 31 includes aprocessing unit 12, a system memory 14 and a system bus 16 that couplesthe system memory 14 to the processing unit 12. System memory 14includes read only memory (ROM) 18 and random access memory (RAM) 20. Abasic input/output system 22 (BIOS), containing the basic routines thathelp to transfer information between elements within the personalcomputer 10, is stored in ROM 18.

Embodiments above can be applied in the context of computer systemsother than personal computer 10. Other appropriate computer systemsinclude handheld devices, multi-processor systems, various consumerelectronic devices, mainframe computers, and the like. Those skilled inthe art will also appreciate that embodiments can also be applied withincomputer systems wherein tasks are performed by remote processingdevices that are linked through a communications network (e.g.,communication utilizing Internet or web-based software systems). Forexample, program modules may be located in either local or remote memorystorage devices or simultaneously in both local and remote memorystorage devices. Similarly, any storage of data associated withembodiments of the present invention may be accomplished utilizingeither local or remote storage devices, or simultaneously utilizing bothlocal and remote storage devices.

Computer 10 further includes a hard disc drive 24, non-volatilesolid-state memory 25 an external memory device 28, and an optical discdrive 30. External memory device 28 can include an external disc driveor solid state memory that may be attached to computer 10 through aninterface such as Universal Serial Bus interface 34, which is connectedto system bus 16. Optical disc drive 30 can illustratively be utilizedfor reading data from (or writing data to) optical media, such as aCD-ROM disc 32. Hard disc drive 24 and optical disc drive 30 areconnected to the system bus 16 by a hard disc drive interface 32 and anoptical disc drive interface 36, respectively. The drives, solid-statememory and external memory devices and their associatedcomputer-readable media provide nonvolatile storage media for thepersonal computer 10 on which computer-executable instructions andcomputer-readable data structures may be stored. Suchcomputer-executable instructions can include instructions for performingany of the steps described in the methods above. Other types of mediathat are readable by a computer may also be used in the exemplaryoperation environment.

A number of program modules may be stored in the drives and RAM 20,including an operating system 38, one or more application programs 40,other program modules 42 and program data 44. In particular, applicationprograms 40 can include a browser, trip and travel tool pages 118 andprogram data 44 may include data stored in any of the databases ortables discussed above including the user data, itinerary data,itinerary object data, area data and location data.

Input devices including a keyboard 63 and a mouse 65 are connected tosystem bus 16 through an Input/output interface 46 that is coupled tosystem bus 16. Monitor 48 is connected to the system bus 16 through avideo adapter 50 and provides graphical images to users. Otherperipheral output devices (e.g., speakers or printers) could also beincluded but have not been illustrated. In accordance with someembodiments, monitor 48 comprises a touch screen that both displaysinput and provides locations on the screen where the user is contactingthe screen.

The personal computer 10 may operate in a network environment utilizingconnections to one or more remote computers, such as a remote computer52. The remote computer 52 may be a server, a router, a peer device, orother common network node. Remote computer 52 may include many or all ofthe features and elements described in relation to personal computer 10,although only a memory storage device 54 has been illustrated in FIG.31. The network connections depicted in FIG. 31 include a local areanetwork (LAN) 56 and a wide area network (WAN) 58. Such networkenvironments are commonplace in the art.

The personal computer 10 is connected to the LAN 56 through a networkinterface 60. The personal computer 10 is also connected to WAN 58 andincludes a modem 62 for establishing communications over the WAN 58. Themodem 62, which may be internal or external, is connected to the systembus 16 via the I/O interface 46.

In a networked environment, program modules depicted relative to thepersonal computer 10, or portions thereof, may be stored in the remotememory storage device 54. For example, application programs may bestored utilizing memory storage device 54. In addition, data associatedwith an application program, such as data stored in the databases ortables described above, may illustratively be stored within memorystorage device 54. It will be appreciated that the network connectionsshown in FIG. 31 are exemplary and other means for establishing acommunications link between the computers, such as a wireless interfacecommunications link, may be used.

Although elements have been shown or described as separate embodimentsabove, portions of each embodiment may be combined with all or part ofother embodiments described above.

Although the subject matter has been described in language specific tostructural features and/or methodological acts, it is to be understoodthat the subject matter defined in the appended claims is notnecessarily limited to the specific features or acts described above.Rather, the specific features and acts described above are disclosed asexample forms for implementing the claims.

What is claimed is:
 1. A computer-implemented method comprising:transmitting, by a server, a first page to be displayed comprising alocation entry representing a location to visit on a trip and two mapelements, the two map elements and location entry being organized as alist in a first order on the first page; receiving a request to move aselected map element of the two map elements within the list; changingparameters of the selected map element to form changed parameters thatchange the position of the selected map element within the list; andtransmitting, by the server, a second page to be displayed based on thechanged parameters, the second page comprising the location entry andthe two map elements organized as a second list in a second order. 2.The computer-implemented method of claim 1 further comprising storingthe changed parameters in a server database before transmitting thesecond page.
 3. The computer-implemented method of claim 1 wherein inthe first order, the selected map element is after a second map elementof the two map elements and wherein receiving a request to move theselected map element comprises receiving a request to move the selectedmap element so that it is before the second map element and whereinchanging the parameters of the selected map element comprises changingthe parameters of the selected map element and the second map element toindicate that the selected map element is before the second map element.4. The computer-implemented method of claim 1 wherein in the firstorder, the selected map element is after the location entry and whereinreceiving a request to move the selected map element comprises receivinga request to move the selected map element so that it is before thelocation entry and wherein changing the parameters of the selected mapelement comprises changing the parameters of the selected map elementand the location entry to indicate that the selected map element isbefore the location entry.
 5. The computer-implemented method of claim 1wherein the location entry comprises a description of the location andan image of the location.
 6. The computer-implemented method of claim 1wherein each of the two map elements comprises an icon positioned on themap element to indicate a geographic position of the location describedby the location entry.
 7. The computed-implemented method of claim 1further comprising: receiving a request to add a third map element tothe second page; creating the third map element; setting parameters ofthe third map element to position the third map element at the end of athird list comprising the location entry, the two map elements and thethird map element; and transmitting, by the server, a third page to bedisplayed based on the changed parameters, the third page comprising thethird list.
 8. A computer-readable medium having computer-executableinstructions stored thereon that cause a processor to perform stepscomprising: receiving a request for a page of itineraries associatedwith a user; and in response to the request: identifying a set of saveditineraries created and explicitly saved by the user; identifying a setof shared itineraries that were shared with the user by other users;identifying a set of unsaved itineraries created by the user but notexplicitly saved by the user; constructing a page that includes an entryfor each saved itinerary in the set of saved itineraries, an entry foreach shared itinerary in the set of shared itineraries, and an entry foreach unsaved itinerary in the set of unsaved itineraries; andtransmitting the page.
 9. The computer-readable medium of claim 8wherein an entry for a shared itinerary in the set of shared itinerariescomprises a link to a page that allows the user to form a modifieditinerary from the shared itinerary.
 10. The computer-readable medium ofclaim 9 further comprising: receiving a request for the page that allowsthe user to form a modified itinerary from the shared itinerary;transmitting a page that displays the shared itinerary and at least onecontrol that is selectable by the user to indicate an itinerarymodification; receiving a request for an itinerary modification thatidentifies the shared itinerary; based on the request: copying theshared itinerary to create a new itinerary; and changing the newitinerary in accordance with the request for itinerary modificationwithout changing the shared itinerary.
 11. The computer-readable mediumof claim 8 wherein an entry for an unsaved itinerary in the set ofunsaved itineraries comprises a button for sharing the unsaved itinerarywith another user.
 12. The computer-readable medium of claim 11 furthercomprising: receiving an instruction to share a saved itinerary in theset of saved itineraries; transmitting a page that requests an e-mailaddress; receiving the e-mail address; storing an indication that theitinerary has been shared with a user associated with the e-mailaddress; and creating and sending an e-mail to the e-mail addressindicating that the itinerary has been shared.
 13. The computer-readablemedium of claim 11 wherein an entry for a saved itinerary in the set ofsaved itineraries comprises a button for e-mailing the saved itineraryto another user.
 14. The computer-readable medium of claim 13 furthercomprising: receiving an instruction to e-mail a saved itinerary in theset of saved itineraries; transmitting a page that requests an e-mailaddress; receiving the e-mail address; converting the saved itineraryinto a portable document format itinerary; and creating and sending ane-mail to the e-mail address with the portable document format itineraryattached.
 15. A computer-implemented method comprising: transmitting, bya server, a page comprising a list of shared itineraries that have beenshared with a user; receiving a request to edit one of the shareditineraries in the list of shared itineraries; transmitting a page thatdisplays the shared itinerary requested for editing and at least onecontrol that is selectable by the user to indicate an itinerarymodification; receiving a request for an itinerary modification; basedon the request for an itinerary modification: copying the shareditinerary requested for editing to create a new itinerary; and changingthe new itinerary in accordance with the request for itinerarymodification without changing the shared itinerary requested forediting, wherein changing the new itinerary produces a modifieditinerary.
 16. The computer-implemented method of claim 15 furthercomprising: storing parameters describing the modified itinerary in adatabase such that the modified itinerary may be reconstructed from theparameters; and transmitting a page comprising the modified itinerary.17. The computer-implemented method of claim 15 wherein the shareditinerary requested for editing comprises two map elements in an orderedlist and wherein the request for an itinerary modification comprises arequest to change the ordinal position of at least one map element inthe ordered list.
 18. The computer-implemented method of claim 15wherein the shared itinerary requested for editing comprises an orderedlist of location entries, map elements and text separators, with eachlocation entry providing information about a location, each map elementcomprising a map with at least one icon showing a geographic position ofa location associated with a location entry and each text separatorcomprising a block of text entered by a user.
 19. Thecomputer-implemented method of claim 15 wherein the page comprising thelist of shared itineraries further comprises a list of saved itinerariessaved by the user and a list of unsaved itineraries created by the userbut not explicitly saved by the user.
 20. The computer-implementedmethod of claim 15 wherein the shared itinerary comprises two mapelements and a location entry in an ordered list and wherein the requestfor an itinerary modification comprises a request to change the ordinalposition of the location entry in the ordered list.